面试百度,凉了!经历分享
The following article is from Java中文社群 Author 磊哥
第一时间收到文章更新
前两天有位朋友去应聘百度测试开发工程师,面试完自我感觉还行,手撕算法、手撕 SQL 都写出来了,八股也回答的不错,但被通知没通过一面。所以朋友就有点不解,于是就跑来问我原因。
从上面的聊天记录可以看出,面试官的反馈有两个未通过的原因:
自我思考力一般。 学习能力一般。
题外话:这也太较真了吧?
有人可能会觉得,这面试官太较真了,能力技术够用不就行了吗?干嘛还要求这、要求那的。这不是就是面试造火箭,工作拧螺丝吗?
这两年大厂的招聘现状确实如此!为什么呢?
因为大厂的岗位就那么多,而全国所有的开发者都想进大厂。
为什么?薪资高、待遇好啊。随随便便找一个大厂的工作,每年至少能拿大几十万,这种薪资待遇,是其他行业很罕见的。
这个时候你就会发现,一个关键岗位的名额,来应聘的都是各路大神,名牌学校、高学历就不用说了,各种耀眼的工作/实习经历,各种技术和中间件也都是聊如执掌。
那么,这个时候问题来了。我面试了 10 个人,只招 1 个人,但 6 个人都答上来了大部分问题。那这个时候,如果你是面试官,你会怎么选?你会选谁?
了解了上面的处境,你就知道为什么这两年大厂面试要如何严苛了。
聊回正题
那怎么理解上面的那两个问题呢?(自我思考一般和学习能力一般)
下面,我来分享一下我的见解。
① 自我思考力一般
指的面试时,回答八股都是“标准”答案,没有自己的思考在里面。例如,当面试官问你,为什么 CurrentHashMap 不能插入 null 值,但 HashMap 却可以?
这个时候,你只回答了,因为 JDK 源码里面强制规定了,CurrentHashMap 的 key 和 value 为 null,就会抛出空指针异常,所以 CurrentHashMap 不允许插入 null 值,但 JDK 源码里没有对 HashMap 进行这样的规定,所以 CurrentHashMap 不能插入 null 值,但 HashMap 却可以。
那你说这个问题你的回答对不对呢?
当然是对的,但这种“标准”答案,大家都知道。所以这样回答就不能体现你的思考和技术优势了。
那要怎么回答呢?这就要求你回答问题的时候,不要浮于表面,要把更深层次的原因说出来,例如,CurrentHashMap 是给多线程下使用的,而多线程下使用时,没办法证明 null 是因为本身就没设置值为 null,还是因为设置 null 值,所以为 null。这个问题,这就是二义性问题。
也就是说二义性问题,在并发环境下没办法被证明,然后再举例说明,为什么没办法被证明?这样才能让面试官知道,你是真的搞懂了这个问题。
类似的问题还有很多,例如,什么样的场景下索引会失效?
如果你只是照本宣科的说了哪些烂大街的“标准”答案,在遇到 XXX 时会失效,在遇到 YYY 是会失效,这就是思考力不足了。
你要回答遇到这些问题更深层次原因,为什么遇到 XXX 就会实现的底层原因是啥?这些失效的场景之间有没有什么共性?这些共性问题的原因是啥?等等,这才是这个问题的关键点,搞懂问题背后的核心原因才是关键。
所以只知道“标准”答案,应聘中小型公司还行,大公司就有点不够打了。
② 学习能力一般
这一项是指你的专业技能水平一般,你会的技能,其他应聘者都会。例如,Java 中的 Spring Boot、MyBatis、MySQL、Redis,这些都属于基础技能,来应聘的人里有 10 个人,但 11 个人都会的这种技能,这种技能大厂肯定是不买单的。
所有公司都期望你会的技能是超越了日常工作中所有的技能的,例如,微服务 Spring Cloud、中间件 MQ、ES、Netty、Dubbo 这些,这些才是面试中能打动面试官的点,也是 Java 中的核心技术了。所以如果你想从事 Java 这一行,一定要把最核心的技术搞懂,这才是你的核心优势。
小结
美团实习二面原题,网友直呼太难。。。 腾讯二面:Redis 内存淘汰策略有哪些?过期数据如何删除? 面试必问:MySQL索引失效的场景有哪些? 快手秋招C++一二面,超多代码示例!!! 不愧是字节,面个实习也满头大汗!